Application remoting, or “app remoting,” is a technology that enables an application running in a remote desktop on a server system to be accessed via a client desktop on a client system. Such an application is known as a remoted application. Typically, the remoted application comprises an application window that is presented within the remote desktop. As part of the app remoting process, this application window can be made accessible to a user of the client system in the form of a corresponding window that is rendered in the client desktop (referred to herein as a “client-side application window”). The client-side application window is updated on a continuous basis to mirror the application window in the remote desktop.
In some cases, there may be a large amount of network latency between the client system and the server system while app remoting is taking place. Such latency may be caused by network congestion, geographic distance between the two systems, and/or other factors. In these cases, a user of the client system may experience a noticeable delay when he/she attempts to move the client-side application window, since this move action requires, for each incremental movement of the window: (1) the user's input command(s) to be transferred from the client system to the server system; (2) a window move to be triggered/performed with respect to the application window in the remote desktop in response to the input command(s); and (3) a window move update to be returned from the server system to the client system. High network latency can also cause the window movement to appear jittery to the user, since window move updates may return to the client system in uneven batches.
Certain app remoting implementations address this issue by detecting when the user has initiated a “left-click-and-drag” operation on the titlebar area of the client-side application window (i.e., the portion of the window that includes the window title and windowing-related buttons) and, upon detecting this specific operation, optimizing the window move process on the client side. However, a significant drawback of this approach is that some applications (particularly web browsers) allow window move actions to be initiated using left-click-and-drag on window regions other than the titlebar area. For example, Google Chrome and Internet Explorer allow a user to move its windows using left-click-and-drag on the window region immediately to the right of the active tabs. Accordingly, for these and other similar applications, the titlebar-based optimization approach noted above is not sufficient for optimizing window move actions in all possible scenarios.